API practice
API practice#
This is where I will be practice producing API called maps.
from urllib import response
from ipyleaflet import *
from ipywidgets import HTML
import requests
import json
import pandas
from pandas import json_normalize
#setting the map to center and zoom
m = Map(center=(52.6,-120.5), zoom=4)
#alternate basemap tile
dm_layer = basemap_to_tiles(basemaps.CartoDB.DarkMatter)
m.add_layer(dm_layer)
#caching
#querying data from pg_featureserv API for bcfishpass
request = 'https://cabd-web.azurewebsites.net/cabd-api/features/dams?filter=province_territory_code:eq:bc&filter=nhn_watershed_id:eq:08DA003'
response_api = requests.get(request)
parse = response_api.text
dams = json.loads(parse)
# geo = GeoJSON(data = dams,
# name = "dams")
# m.add_layer(geo)
#popup & marker cluster
markers = ()
#style for marker https://fontawesome.com/v4/icons/
icon = AwesomeIcon(
name='wrench',
marker_color='blue',
icon_color='blue'
)
#https://carpentries-incubator.github.io/jupyter_maps/03-vector/index.html
features = dams['features']
for i in range(len(features)):
location=(features[i]['geometry']['coordinates'][1],features[i]['geometry']['coordinates'][0])
instructors = (features[i]['properties']['cabd_id'])
html = """
<p>
<h4>Table: """ + " ".join(instructors) + """</h4>
</p>
"""
marker = Marker(icon = icon, location = location)
# Popup associated to a layer
marker.popup = HTML(html)
#m.add_layer(marker)
#marker cluster markers
markers = markers + (marker,)
m.add_layer(MarkerCluster(markers = markers, name="DAMS"))
#display(m)
print(type(response_api))
<class 'requests.models.Response'>